package com.avantis.admin.service;

import com.avantis.common.base.BaseService;
import com.avantis.common.entity.User;
import org.springframework.data.domain.Page;

public interface UserService extends BaseService<User> {

    Page<User> findByPage(User user, Integer pageNo, Integer length);

    void saveUserEnable(Integer[] id);

    boolean checkUserName(String username);

    /**
     * 验证用户邮箱
     *
     * @param email
     * @return
     */
    boolean checkUserEmail(String email);

    /**
     * 根据Email查询用户
     * @param email
     * @return
     */
    User findByEmail(String email);

    /**
     * 注册用户
     * @param email
     * @param username
     * @param password
     */
    void createUser(String email,String username,String password);

    /**
     * 用户登录
     *
     * @param user
     * @return 返回token
     */
    String LoginUser(User user);


    /**
     * 通过Token获取用户信息
     * @param token
     * @return
     */
    User getUserByToken(String token);

    /**
     * 根据Token登出用户
     * @param token
     */
    void LogoutUser(String token);


    /**
     * 修改用户信息
     * @param token
     * @param username
     */
    void updateUser(String token,String username);


    /**
     * 修改用户的密码
     * @param token
     * @param oldpsd
     * @param newpsd
     */
    void updateUserPassword(String token,String oldpsd,String newpsd);

}
